package com.stark.wechat.message.in;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.stark.wechat.core.MessageType;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 图片消息
 *
 * @author <a href="mailto:mengbin@hotmail.com">Ben</a>
 * @version 1.0.0
 * @see <a href="https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages.html#%E5%9B%BE%E7%89%87%E6%B6%88%E6%81%AF">能力接入 / 基础消息与订阅通知 / 接收普通消息 / 图片消息</a>
 * @since 2024/5/23
 */
@Data
@Accessors(chain = true)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ImageMessage implements MediaMessage {

    private static final long serialVersionUID = -3412985338576450078L;

    /**
     * 开发者微信号
     */
    @JacksonXmlProperty(localName = "ToUserName")
    private String toUserName;

    /**
     * 发送方账号（一个OpenID）
     */
    @JacksonXmlProperty(localName = "FromUserName")
    private String fromUserName;

    /**
     * 消息创建时间
     */
    @JacksonXmlProperty(localName = "CreateTime")
    private Long createTime;

    /**
     * 消息类型，图片为image
     */
    @JacksonXmlProperty(localName = "MsgType")
    private MessageType msgType;

    /**
     * 图片链接（由系统生成）
     */
    @JacksonXmlProperty(localName = "PicUrl")
    private String picUrl;

    /**
     * 图片消息媒体id，可以调用获取临时素材接口拉取数据。
     */
    @JacksonXmlProperty(localName = "MediaId")
    private String mediaId;

    /**
     * 消息id，64位整型
     */
    @JacksonXmlProperty(localName = "MsgId")
    private Long msgId;

    /**
     * 消息的数据ID（消息如果来自文章时才有）
     */
    @JacksonXmlProperty(localName = "MsgDataId")
    private String msgDataId;

    /**
     * 多图文时第几篇文章，从1开始（消息如果来自文章时才有）
     */
    @JacksonXmlProperty(localName = "Idx")
    private Integer idx;

}
